package com.ph.shopping.facade.merchant.service; /**
 * 
 */


import java.math.BigDecimal;
import java.util.List;

import com.ph.shopping.common.core.exception.BizException;
import com.ph.shopping.common.util.page.PageBean;
import com.ph.shopping.common.util.result.Result;
import com.ph.shopping.facade.merchant.entity.Merchant;
import com.ph.shopping.facade.merchant.entity.MerchantChargeRecord;
import com.ph.shopping.facade.merchant.entity.MerchantDrawcashRecord;
import com.ph.shopping.facade.merchant.entity.MerchantImage;
import com.ph.shopping.facade.merchant.entity.Position;
import com.ph.shopping.facade.merchant.entity.UserBalance;
import com.ph.shopping.facade.merchant.vo.UserBalanceRecordVo;

/**
 * @项目：phshopping-facade-Merchant
 *
 * @描述：商户接口
 *
 * @作者： 舒豪
 *
 * @创建时间：2017年3月10日
 *
 * @Copyright @2017 by huangdd
 */
public interface IMerchantService {

    /**
     * 获取商户列表
     * @return
     */
    public Result getMerchantList(Merchant merchant, PageBean pagebean);

    /**
     * 新增商户和商户图片
     * @return
     */
    public Result addMerchant(Merchant merchant,List<MerchantImage>  list) throws BizException;

    /**
     * 修改商户
     * @return
     */
    public Result updateMerchant(Merchant merchant,List<MerchantImage>  list) throws BizException;
    /**
     * 商户详细
     * @return
     */
    public Result detaileMerchant(Merchant merchant);

    /**
 	 * 获取所有的市县区
 	 */
     public  Result  getAllPosition(String pid);

     /**
      * 修改商户状态
      * @param 
      * @return
      */
     public Result updateMerchatStatues(Merchant merchant);
     
    /**
     * 修改商户 用于回填
     */
     public Result getMerchantDetailForUpdate(Merchant merchant);
    
     /**
      * 查询商户或者供应商或者代理商的余额(提供给其他小组用)
      */
     public Result getUserBalance(UserBalance userBalance);  

     /**
      * 根据商户的id 返回该商户的市级代理(其他小组用)
      */
     public  Result getCityAgentByMerchant(Merchant merchant);
     
     /**
      * 获取商户的余额记录流水
 	  * @param userBalance 商户余额记录
 	  * @return List<BalanceRecordVo> 商户余额记录集合
 	  * @throws BizException
 	  * @author liuy
      */
     public Result getUserBalanceRecordVoList(PageBean page, UserBalanceRecordVo userBalanceRecordVo) throws BizException;

     /**
      * 新增商户充值记录
      * @param merchantChargeRecord 商户充值记录
      * @return Result
      */
     public Result addMerchantChargeRecord(MerchantChargeRecord merchantChargeRecord) throws Exception;
     
     /**
      * 新增商户提现记录
      * @param merchantDrawcashRecord 商户提现记录
      * @return Result
      */
     public Result addMerchantDrawcashRecord(MerchantDrawcashRecord merchantDrawcashRecord) throws Exception;

 	
 	/**
      * 查询登陆人当天的已提现总额
      * @param merchantDrawcashRecord 商户提现记录
      * @return Result
      * @author 刘颖
      */
     public BigDecimal getDrawcashMoneyToday(MerchantDrawcashRecord merchantDrawcashRecord) throws Exception;
     
  	/**
       * 查询登陆人提现待审核记录
       * @param merchantDrawcashRecord 商户提现记录
       * @return Result
       * @author 刘颖
       */
      public BigDecimal getDrawcashStatusPendingTotal(MerchantDrawcashRecord merchantDrawcashRecord) throws Exception;
     
     /**
      * 区域
      * @param id
      * @param type
      * @return
      */
     public Result getPositionByIdAndType(String id, String type);
     
     /**
      * 通过主键获取区域
      * @param id
      * @return
      */
     public Position getPositionById(Long id); 
}
